import sha1 from "js-sha1"
import wx from 'weixin-jsapi'

//要用到微信API
const wxApi = {
  async wxRegister (res, callback) {
    let ticket = res.ticket
    var timestamp = new Date().valueOf() + ""
    timestamp = timestamp.slice(0, 10)
    var noncestr = randomString(32)
    // 微信Api初始化
    wx.config({
      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
      appId: res.appid, // 必填，公众号的唯一标识
      timestamp: timestamp, // 必填，生成签名的时间戳
      nonceStr: noncestr, // 必填，生成签名的随机串
      signature: getsignature(timestamp, noncestr, ticket), // 必填，签名
      // jsApiList: jsApiList // 必填，需要使用的JS接口列表
      jsApiList: [ //需要调用的JS接口列表
        'onMenuShareAppMessage', //自定义“分享给朋友”及“分享到QQ”按钮的分享内容（1.4.0） 新接口
        'onMenuShareTimeline', //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容（1.4.0） 老接口
        'scanQRCode',
        'startRecord',
        'stopRecord',
        'onVoiceRecordEnd',
        'playVoice',
        'pauseVoice',
        'stopVoice',
        'onVoicePlayEnd',
        'uploadVoice',
        'getLocation',
      ],
    })

    wx.ready(() => {
      wx.checkJsApi({
        jsApiList: ['scanQRCode'],
        success: function (res) { },
        fail: function (e) {
          layer.msg('当前登录环境不支持扫码,请切换微信环境')
        }
      })
      wx.error(function (result) {
        alert(JSON.stringify(res))
      })
      // 如果需要定制ready回调方法
      if (callback) { callback() }
    })


    //获取签名
    function getsignature (timestamp, noncestr, ticket) {
      let url = window.location.href.split("#")[0]
      let string1 = `jsapi_ticket=${ticket}&noncestr=${noncestr}&timestamp=${timestamp}&url=${url}`
      var signString = sha1(string1)
      return signString
    }
    //获取随机字符串
    function randomString (len) {
      len = len || 32
      /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
      var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
      var maxPos = $chars.length
      var pwd = ''
      for (var i = 0; i < len; i++) {
        pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
      }
      return pwd
    }


  },

  /** [ShareTimeline 微信分享到朋友圈]
   * @param {[type]} option [分享信息]
   * @param {[type]} success [成功回调]
   * @param {[type]} error   [失败回调]
   */
  ShareTimeline (option) {
    wx.onMenuShareTimeline({
      title: option.title, // 分享标题
      link: option.link, // 分享链接
      imgUrl: option.imgUrl, // 分享图标
      desc: option.desc,


      success () {
        // 用户成功分享后执行的回调函数
        option.success()

      },
      cancel () {
        // 用户取消分享后执行的回调函数
        option.error()
      }
    })
  },
  /** [ShareAppMessage 微信分享给朋友]
 @param {[type]} option [分享信息]
 @param {[type]} success [成功回调]
 @param {[type]} error   [失败回调] */
  ShareAppMessage (option) {
    wx.onMenuShareAppMessage({
      title: option.title, // 分享标题
      desc: option.desc,
      link: option.link, // 分享链接
      imgUrl: option.imgUrl, // 分享图标

      success () {
        // 用户成功分享后执行的回调函数
        option.success()

      },
      cancel () {
        // 用户取消分享后执行的回调函数
        option.error()
      }
    })
  },
}
export default wxApi